package com.jeesite.modules.task.audit.entity;

import javax.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.BaseEntity;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.task.arrange.entity.DcSupTaskInfoArrange;
import com.jeesite.modules.task.deploy.entity.DcSupTaskInfo;
import com.jeesite.modules.task.feedback.entity.DcSupTaskFeedback;

/**
 * 任务过程审核表Entity
 * @author zrr
 * @version 2022-03-02
 */
@Table(name="dc_sup_task_audit", alias="a", label="任务过程审核表信息", columns={
		@Column(name="id", attrName="id", label="主键", isPK=true),
		@Column(name="target_id", attrName="targetId", label="目标id", comment="目标id（task_id、feedback_id）"),
		@Column(name="task_id", attrName="taskId", label="任务id", comment="目标id（task_id、feedback_id）"),
		@Column(name="target_type", attrName="targetType", label="目标类型", comment="目标类型（1任务部署、2反馈、3整理任务）"),
		@Column(name="audit_type", attrName="auditType", label="审核类型", comment="审核类型（1任务部署审核、2任务部署秘书长审核、3任务反馈审核、4科室审核、5机关党组成员审核、6整理任务秘书长审核）"),
		@Column(name="auditor_code", attrName="auditorCode", label="审核人编号"),
		@Column(name="auditor_name", attrName="auditorName", label="审核人名称", queryType=QueryType.LIKE),
		@Column(name="auditor_role", attrName="auditorRole", label="审核人角色"),
		@Column(name="audit_result", attrName="auditResult", label="审核结果", comment="审核结果（1通过、2驳回）"),
		@Column(name="audit_option", attrName="auditOption", label="审核意见"),
		@Column(name="audit_time", attrName="auditTime", label="审核时间", isUpdateForce=true),
		@Column(name="audit_status", attrName="auditStatus", label="审核状态"),
		@Column(name="create_by", attrName="createBy", label="创建人", isUpdate=false, isQuery=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false),
		@Column(name="update_by", attrName="updateBy", label="更新人", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false),
		@Column(name="remarks", attrName="remarks", label="备注", queryType=QueryType.LIKE),
		@Column(includeEntity=BaseEntity.class),
		@Column(name="remarks1", attrName="remarks1", label="备用字段1", queryType=QueryType.LIKE),
		@Column(name="remarks2", attrName="remarks2", label="备用字段2", queryType=QueryType.LIKE),
		@Column(name="remarks3", attrName="remarks3", label="备用字段3", queryType=QueryType.LIKE),
		@Column(name="remarks4", attrName="remarks4", label="备用字段4", queryType=QueryType.LIKE),
	}, orderBy="a.update_date DESC"
)
public class DcSupTaskAudit extends DataEntity<DcSupTaskAudit> {
	
	private static final long serialVersionUID = 1L;
	 /**
	 * 目标id（task_id、feedback_id）
	 */
	private String targetId;
	/**
	 * 任务id
	 */
	private String taskId;
	 /**
	 * 目标类型（1任务部署、2反馈、3整理任务）
	 */
	private String targetType;
	 /**
	 * 审核类型（1任务部署审核、2任务部署秘书长审核、3任务反馈审核、4科室审核、5机关党组成员审核、6整理任务秘书长审核）
	 */
	private String auditType;
	 /**
	 * 审核人编号
	 */
	private String auditorCode;
	 /**
	 * 审核人名称
	 */
	private String auditorName;
	 /**
	 * 审核人角色
	 */
	private String auditorRole;
	 /**
	 * 审核结果（1通过、2驳回）
	 */
	private String auditResult;
	 /**
	 * 审核意见
	 */
	private String auditOption;
	 /**
	 * 审核时间
	 */
	private Date auditTime;
	/**
	 * 审核状态（0删除，1未审核，2已审核）
	 */
	private String auditStatus;
	 /**
	 * 备用字段1
	 */
	private Long remarks1;
	 /**
	 * 备用字段2
	 */
	private String remarks2;
	 /**
	 * 备用字段3
	 */
	private String remarks3;
	 /**
	 * 备用字段4
	 */
	private String remarks4;

	/**
	 * 补充字段
	 */
	private String taskYear;
	private String taskTitle;
	private String taskContent;
	private String taskTypeCode;
	private String taskTypeName;
	private String taskLeaderOrgName;
	private String taskSupOrg;
	private String taskSupOrgName;
	private String taskSupUserName;
	private Date taskEndTime;
	private String supOrgFlag;
	private String messageNumber;
	private Date feedbackEndTime;
	private Date arrangeTime;
	private Date feedbackTime;


	/**
	 * 补充实体
	 */
	private DcSupTaskInfo dcSupTaskInfo;
	private DcSupTaskFeedback dcSupTaskFeedback;
	private DcSupTaskInfoArrange dcSupTaskInfoArrange;
	private String normalFlag;
	private String feedbackProgress;
	private Double feedbackRate;
	private String auditScope;
	private String officeCode;

	public String getOfficeCode() {
		return officeCode;
	}

	public void setOfficeCode(String officeCode) {
		this.officeCode = officeCode;
	}

	public String getAuditScope() {
		return auditScope;
	}

	public void setAuditScope(String auditScope) {
		this.auditScope = auditScope;
	}

	public String getFeedbackProgress() {
		return feedbackProgress;
	}

	public void setFeedbackProgress(String feedbackProgress) {
		this.feedbackProgress = feedbackProgress;
	}

	public String getNormalFlag() {
		return normalFlag;
	}

	public void setNormalFlag(String normalFlag) {
		this.normalFlag = normalFlag;
	}

	public DcSupTaskAudit() {
		this(null);
	}

	public DcSupTaskAudit(String id){
		super(id);
	}
	
	@Size(min=0, max=64, message="目标id长度不能超过 64 个字符")
	public String getTargetId() {
		return targetId;
	}

	public void setTargetId(String targetId) {
		this.targetId = targetId;
	}

	public String getTaskId() {
		return taskId;
	}

	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}

	@Size(min=0, max=10, message="目标类型长度不能超过 10 个字符")
	public String getTargetType() {
		return targetType;
	}

	public void setTargetType(String targetType) {
		this.targetType = targetType;
	}
	
	@Size(min=0, max=10, message="审核类型长度不能超过 10 个字符")
	public String getAuditType() {
		return auditType;
	}

	public void setAuditType(String auditType) {
		this.auditType = auditType;
	}
	
	@Size(min=0, max=64, message="审核人编号长度不能超过 64 个字符")
	public String getAuditorCode() {
		return auditorCode;
	}

	public void setAuditorCode(String auditorCode) {
		this.auditorCode = auditorCode;
	}
	
	@Size(min=0, max=64, message="审核人名称长度不能超过 64 个字符")
	public String getAuditorName() {
		return auditorName;
	}

	public void setAuditorName(String auditorName) {
		this.auditorName = auditorName;
	}

	public String getAuditorRole() {
		return auditorRole;
	}

	public void setAuditorRole(String auditorRole) {
		this.auditorRole = auditorRole;
	}

	@Size(min=0, max=10, message="审核结果长度不能超过 10 个字符")
	public String getAuditResult() {
		return auditResult;
	}

	public void setAuditResult(String auditResult) {
		this.auditResult = auditResult;
	}
	
	public String getAuditOption() {
		return auditOption;
	}

	public void setAuditOption(String auditOption) {
		this.auditOption = auditOption;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAuditTime() {
		return auditTime;
	}

	public void setAuditTime(Date auditTime) {
		this.auditTime = auditTime;
	}

	public String getAuditStatus() {
		return auditStatus;
	}

	public void setAuditStatus(String auditStatus) {
		this.auditStatus = auditStatus;
	}

	public Long getRemarks1() {
		return remarks1;
	}

	public void setRemarks1(Long remarks1) {
		this.remarks1 = remarks1;
	}
	
	@Size(min=0, max=200, message="备用字段2长度不能超过 200 个字符")
	public String getRemarks2() {
		return remarks2;
	}

	public void setRemarks2(String remarks2) {
		this.remarks2 = remarks2;
	}
	
	@Size(min=0, max=200, message="备用字段3长度不能超过 200 个字符")
	public String getRemarks3() {
		return remarks3;
	}

	public void setRemarks3(String remarks3) {
		this.remarks3 = remarks3;
	}
	
	@Size(min=0, max=200, message="备用字段4长度不能超过 200 个字符")
	public String getRemarks4() {
		return remarks4;
	}

	public void setRemarks4(String remarks4) {
		this.remarks4 = remarks4;
	}

	public String getTaskYear() {
		return taskYear;
	}

	public void setTaskYear(String taskYear) {
		this.taskYear = taskYear;
	}

	public String getTaskTitle() {
		return taskTitle;
	}

	public void setTaskTitle(String taskTitle) {
		this.taskTitle = taskTitle;
	}

	public String getTaskContent() {
		return taskContent;
	}

	public void setTaskContent(String taskContent) {
		this.taskContent = taskContent;
	}

	public String getTaskTypeCode() {
		return taskTypeCode;
	}

	public void setTaskTypeCode(String taskTypeCode) {
		this.taskTypeCode = taskTypeCode;
	}

	public String getTaskTypeName() {
		return taskTypeName;
	}

	public void setTaskTypeName(String taskTypeName) {
		this.taskTypeName = taskTypeName;
	}

	public String getTaskSupOrg() {
		return taskSupOrg;
	}

	public void setTaskSupOrg(String taskSupOrg) {
		this.taskSupOrg = taskSupOrg;
	}

	public String getSupOrgFlag() {
		return supOrgFlag;
	}

	public void setSupOrgFlag(String supOrgFlag) {
		this.supOrgFlag = supOrgFlag;
	}

	public String getMessageNumber() {
		return messageNumber;
	}

	public void setMessageNumber(String messageNumber) {
		this.messageNumber = messageNumber;
	}

	public DcSupTaskInfo getDcSupTaskInfo() {
		return dcSupTaskInfo;
	}

	public String getTaskLeaderOrgName() {
		return taskLeaderOrgName;
	}

	public void setTaskLeaderOrgName(String taskLeaderOrgName) {
		this.taskLeaderOrgName = taskLeaderOrgName;
	}

	public String getTaskSupOrgName() {
		return taskSupOrgName;
	}

	public void setTaskSupOrgName(String taskSupOrgName) {
		this.taskSupOrgName = taskSupOrgName;
	}

	public String getTaskSupUserName() {
		return taskSupUserName;
	}

	public void setTaskSupUserName(String taskSupUserName) {
		this.taskSupUserName = taskSupUserName;
	}

	public Date getTaskEndTime() {
		return taskEndTime;
	}

	public void setTaskEndTime(Date taskEndTime) {
		this.taskEndTime = taskEndTime;
	}

	public void setDcSupTaskInfo(DcSupTaskInfo dcSupTaskInfo) {
		this.dcSupTaskInfo = dcSupTaskInfo;
	}

	public DcSupTaskFeedback getDcSupTaskFeedback() {
		return dcSupTaskFeedback;
	}

	public void setDcSupTaskFeedback(DcSupTaskFeedback dcSupTaskFeedback) {
		this.dcSupTaskFeedback = dcSupTaskFeedback;
	}

	public DcSupTaskInfoArrange getDcSupTaskInfoArrange() {
		return dcSupTaskInfoArrange;
	}

	public void setDcSupTaskInfoArrange(DcSupTaskInfoArrange dcSupTaskInfoArrange) {
		this.dcSupTaskInfoArrange = dcSupTaskInfoArrange;
	}

	public Date getFeedbackEndTime() {
		return feedbackEndTime;
	}

	public void setFeedbackEndTime(Date feedbackEndTime) {
		this.feedbackEndTime = feedbackEndTime;
	}

	public Date getArrangeTime() {
		return arrangeTime;
	}

	public void setArrangeTime(Date arrangeTime) {
		this.arrangeTime = arrangeTime;
	}

	public Date getFeedbackTime() {
		return feedbackTime;
	}

	public void setFeedbackTime(Date feedbackTime) {
		this.feedbackTime = feedbackTime;
	}

	public Double getFeedbackRate() {
		return feedbackRate;
	}

	public void setFeedbackRate(Double feedbackRate) {
		this.feedbackRate = feedbackRate;
	}
}